package com.yx.cloud.product.laser.yxcloud;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.PointF;
import android.util.Base64;
import android.util.Log;

import com.google.gson.Gson;
import com.iot.base.bean.Device;
import com.iot.base.service.req.DataBag;
import com.iot.base.service.req.DataParam;
import com.iot.common.utils.Event;
import com.iot.common.utils.LogUtils;
import com.iot.common.utils.StringUtils;
import com.iot.common.utils.ZipUtil;
import com.iot.product.sweeper.bean.Appointment;
import com.iot.product.sweeper.bean.AreaInfo;
import com.iot.product.sweeper.bean.CleanAreaInfo;
import com.iot.product.sweeper.bean.CleanRecord;
import com.iot.product.sweeper.bean.FirmwareUpdateInfo;
import com.iot.product.sweeper.bean.PathPoint;
import com.iot.product.sweeper.bean.Robot;
import com.iot.product.sweeper.bean.RobotStatus;
import com.iot.product.sweeper.bean.Room;
import com.iot.product.sweeper.bean.RoomCleanParam;
import com.iot.sdk.yugong.YuGongConstants;
import com.iot.sdk.yugong.YuGongError;
import com.iot.sdk.yugong.YuGongResponse;
import com.iot.sdk.yugong.YuGongSdk;
import com.iot.sdk.yugong.req.YuGongPayloadData;
import com.iot.sdk.yugong.req.YuGongPayloadDataList;
import com.iot.sdk.yugong.req.YuGongPayloadRemoveMultiMap;
import com.iot.sdk.yugong.req.YuGongPayloadSendUpgradeUrl;
import com.iot.sdk.yugong.req.YuGongPayloadSendVoiceBagUrl;
import com.iot.sdk.yugong.resp.DataListParam;
import com.iot.sdk.yugong.resp.YuGongRespData;
import com.iot.sdk.yugong.resp.YuGongRespDataCommon;
import com.iot.sdk.yugong.resp.YuGongRespDataList;
import com.iot.sweeper.AppContext;
import com.iot.sweeper.param.AddAppointmentParam;
import com.iot.sweeper.param.ChangeAppointmentParam;
import com.iot.sweeper.param.CleanSettingParam;
import com.iot.sweeper.param.ClearCustomModeParam;
import com.iot.sweeper.param.DeleteAppointmentParam;
import com.iot.sweeper.param.GetCleanRecordDetailParam;
import com.iot.sweeper.param.GetCleanRecordParam;
import com.iot.sweeper.param.MapNameParam;
import com.iot.sweeper.param.MergeRoomParam;
import com.iot.sweeper.param.MultiMapSwitchParam;
import com.iot.sweeper.param.RemoteControlParam;
import com.iot.sweeper.param.RemoveMapParam;
import com.iot.sweeper.param.RemoveMultiMapList;
import com.iot.sweeper.param.RenameMapParam;
import com.iot.sweeper.param.RenameRoomParam;
import com.iot.sweeper.param.ResetComsuptionParam;
import com.iot.sweeper.param.SaveCustomModeParam;
import com.iot.sweeper.param.SaveMapParam;
import com.iot.sweeper.param.SetAreaParam;
import com.iot.sweeper.param.SetMapParam;
import com.iot.sweeper.param.SetQuiteTimeParam;
import com.iot.sweeper.param.SplitRoomParam;
import com.iot.sweeper.product.YuGongDefaultSweeperProduct;
import com.yx.cloud.AppStatusConstant;
import com.yx.cloud.R;
import com.yx.cloud.product.ProductConfigConstants;
import com.yx.cloud.product.laser.tuyapublic.ParseResult;
import com.yx.cloud.product.laser.tuyapublic.TuyaLaserConstant;
import com.yx.cloud.utils.PathUtils;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.TimeZone;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import retrofit2.Call;
import retrofit2.Callback;

public class X3_MAX extends X3_YXCLOUD {
    public static final String PID = "x3-max";
    public static final String PNAME = "X3 Max";

    private X3_MAX() {
        setProductId(PID);
        getProduct().setProductName(PNAME);
        getProduct().setProductIcon(R.mipmap.robot_icon_pic_x3);

    }

    @Override
    public void initConfig() {
        super.initConfig();
        //TODO 后续考虑从文件中读取
        X3MaxConfig.initConfig(getProduct().getConfigureMap(), this);
    }
}
